import { LayoutContext } from 'antd/lib/layout/layout';
import React, { useEffect, useRef, useState } from 'react';

const Dynamic = () => {
  const [count, setCount] = useState(60);
  const [time, setTime] = useState(10);
  // useEffect(() => {
  //   for(var i=0; i<5; i++) {
  //     // (function(index) {
  //     //   setTimeout(() => {
  //     //     console.log(index)
  //     //   },1000)
  //     // })(i)
  //     new Promise((resolve,reject) => {
  //       // console.log(i)
  //       resolve(i)
  //     }).then((res) => {
  //       setTimeout(() => {
  //         console.log(res)
  //       },1000)
  //     })
  //     // setTimeout(() => {
  //     //   console.log(i)
  //     // },1000)
  //   }
  // },[])
  // useEffect(() => {
  //   let timer = setTimeout(() => {
  //     // console.log(new Date());
  //     count > 0 ? setCount((count) => count - 1) : setCount(0);
  //   }, 1000);
  //   return () => {
  //     clearInterval(timer);
  //   };
  // });

  // useEffect(() => {
  //   setTime((time) => time - 1);
  //   setTimeout(() => {
  //     console.log(new Date());
  //     if (time === 0) {
  //       alert('1');
  //       setTime(time + 10);
  //     }
  //   }, time);
  //   console.log(1);
  //   setTimeout(function () {
  //     console.log(2);
  //   });
  //   new Promise(function (resolve, reject) {
  //     console.log(3);
  //     resolve(4);
  //   }).then(function (val) {
  //     console.log(val);
  //   });
  //   console.log(5);
  // }, []);

  // useEffect(() => {
  //   var arr = [102, 45, 37, 28, 18, 20];
  //   let arr1 = insertSort(arr);
  //   console.log(arr1);
  //   let arr2 = quickSort(arr);
  //   console.log(arr2);
  //   let arr3 = [1, [2, 3], 4, [5, [6, 7]], 8, [[[9, 10]]]];
  //   let res: any[] = [];
  //   res = flatArr1(arr3);
  //   console.log(res);
  //   let obj = {
  //     name: 'lxy',
  //     age: {
  //       a: 1,
  //       b: 2,
  //     },
  //     sex: {
  //       d: 3,
  //       e: {
  //         f: 4,
  //         g: {
  //           h: 5,
  //           I: 6,
  //         },
  //       },
  //     },
  //   };
  //   console.log(flatObj(obj, ''));
  //   let groupPage = [
  //     {
  //       value: 'A',
  //       group: [
  //         {
  //           value: '11',
  //           group: [{ value: '111' }],
  //         },
  //         {
  //           value: '12',
  //           group: [{ value: '112' }],
  //         },
  //       ],
  //     },
  //     {
  //       value: 'B',
  //       group: [
  //         {
  //           value: '21',
  //           group: [
  //             {
  //               value: '221',
  //             },
  //           ],
  //         },
  //       ],
  //     },
  //   ];
  //   console.log(flatObj(groupPage, ''));
  // }, []);

  // // 对像扁平化
  // const flatObj = (arr: any, tempKey?: any) => {
  //   let obj: any = {};
  //   for (const key in arr) {
  //     // console.log(typeof(arr[key]))
  //     if (typeof arr[key] === 'object') {
  //       obj = Object.assign({}, obj, flatObj(arr[key], tempKey + key + '.'));
  //     } else {
  //       // console.log(key)
  //       obj[tempKey + key] = arr[key];
  //     }
  //   }
  //   // console.log(obj)
  //   return obj;
  // };

  // 数组扁平化
  const flatArr = (arr: any[]) => {
    let res: any[] = [];
    arr.forEach((item, index, a) => {
      console.log(item);
      Array.isArray(item);
      if (Array.isArray(item)) {
        res = res.concat(flatArr(item));
      } else {
        res.push(item);
      }
    });
    return res;
  };

  const flatArr1 = (arr: any[]) => {
    while (
      arr.some((item) => {
        return Object.prototype.toString.call(item) === '[object Array]';
      })
    ) {
      arr = [].concat(...arr);
    }
    return arr;
  };

  const quickSort = (arr: number[]): number[] => {
    if (arr.length <= 1) {
      return arr;
    }
    let pivoteIndex = Math.floor(arr.length / 2);
    let pivote = arr.splice(pivoteIndex, 1)[0];
    let left = [];
    let right = [];
    for (let i = 0; i < arr.length; i++) {
      if (pivote < arr[i]) {
        right.push(arr[i]);
      } else {
        left.push(arr[i]);
      }
    }
    return quickSort(left).concat([pivote], quickSort(right));
  };

  const insertSort = (arr: number[]) => {
    for (let i = 1; i < arr.length; i++) {
      let temp = arr[i];
      let j = i - 1;
      while (j >= 0 && arr[j] > temp) {
        arr[j + 1] = arr[j];
        j--;
      }
      arr[j + 1] = temp;
    }
    return arr;
  };

  // const quickSort = (arr: number[]): number[] => {
  //   if (arr.length <= 1) {
  //     return arr
  //   }
  //   let pivotIndex = Math.floor(arr.length /2)
  //   let pivote = arr.splice(pivotIndex,1)[0]
  //   let left = []
  //   let right = []
  //   for (let i = 0; i< arr.length; i++) {
  //     if (pivote < arr[i]) {
  //       right.push(arr[i])
  //     } else {
  //       left.push(arr[i])
  //     }
  //   }
  //   return quickSort(left).concat([pivote],quickSort(right))
  // }

  // const insertSort = (arr: number[]) => {
  //   for(let i = 1; i< arr.length; i++) {
  //     let temp = arr[i]
  //     let j = i -1
  //     while (j >= 0 && arr[j] > temp) {
  //       arr[j+1] = arr[j]
  //       j--
  //     }
  //     arr[j+1] = temp
  //   }
  //   return arr
  // }
  // const insertSort = (arr: number[]) => {
  //   for (let i = 1; i < arr.length; i++) {
  //     let temp = arr[i]
  //     let j = i -1
  //     while (j >= 0 && arr[j] > temp) {
  //       arr[j+1] = arr[j]
  //       j--
  //       console.log(j)
  //     }
  //     arr[j+1] = temp
  //     // console.log(arr[j+1])
  //   }
  //   return arr
  // }

  return (
    <div>
      <h1>倒计时{count > 0 ? (count >= 10 ? count : '0' + count) : '结束'}</h1>
    </div>
  );
};

export default Dynamic;
